package com.anolesoft.yr.mbus.base.service;

import com.anolesoft.yr.mbus.base.dto.BaseRegionDTO;
import com.anolesoft.yr.mbus.base.dto.BaseRegionTreeQueryDTO;
import com.anolesoft.yr.util.PageData;

import java.util.List;
import java.util.Optional;

/**
 * @author zhj
 * @date 2020/8/7 19:15
 */
public interface BaseRegionService {
    int create(BaseRegionDTO baseRegionDTO);

    int modify(BaseRegionDTO baseRegionDTO);

    int remove(String id);

    int removeBatch(List<String> ids);

    List<BaseRegionDTO> selectAll();

    PageData<List<BaseRegionDTO>> selectAll(Integer limit, Integer curr);

    Optional<BaseRegionDTO> selectOneById(String id);

    List<BaseRegionDTO> selectListByName(String name);

    PageData<List<BaseRegionDTO>> selectPageByName(String name, Integer limit, Integer curr);

    List<BaseRegionDTO> selectListByFactoryCode(String factoryCode);

    PageData<List<BaseRegionDTO>> selectPageByFactoryCode(String factoryCode, Integer limit, Integer curr);

    List<BaseRegionDTO> selectListByCondition(BaseRegionDTO baseRegionDTO);

    PageData<List<BaseRegionDTO>> selectPageByCondition(BaseRegionDTO baseRegionDTO, Integer limit, Integer curr);

    List<BaseRegionDTO> findChildrenByParentUid(String parentUid);

    List<BaseRegionDTO> findTopLevel();

    List<BaseRegionTreeQueryDTO> getTree(String parentId);
}
